package com.baturu.mybatisminus.dao;

import com.baturu.mybatisminus.annotation.NoRepositoryBean;

import java.util.Collection;

/**
 * 使用该类要求实体类中有state或status字段，且状态值-1表示删除
 * @author huangbin
 */
@NoRepositoryBean
public interface LogicDeleteBaseDAO<T, ID> extends BaseDAO<T, ID> {

    /**
     * 根据id逻辑删除一条记录
     * 生成SQL：update table set state/status=-1 where primaryKey=?
     */
    int logicDeleteById(ID id);


    /**
     * 根据id列表逻辑删除一批记录
     * 生成SQL：update table set state/status=-1 where primaryKey in(?)
     */
    int logicDeleteByIds(Collection<ID> ids);
}
